home *** CD-ROM | disk | FTP | other *** search
- property mySprite, myTargetSprite, myType, myName, myNameDown, myNameOver, myNameInactive, myAction, Active, ancestor, grey
-
- on beginSprite me
- global gActorListMan
- mySprite = me.spriteNum
- myName = (the member of sprite mySprite).name
- myNameDown = word 1 of myName && "down"
- myNameOver = word 1 of myName && "over"
- myNameInactive = word 1 of myName && "Inactive"
- Active = 1
- if myName starts "right" then
- myAction = #next
- else
- myAction = #prev
- goGrey(me)
- end if
- lookForToolTip = 1
- ancestor = new(script("FourStatebuttonActions"), lookForToolTip)
- myType = #BuildMatArrow
- registerSprite(gActorListMan, mySprite)
- end
-
- on mouseUp me
- global gClickSprite
- if voidp(myTargetSprite) then
- myTargetSprite = sendAllSprites(#sendSpriteNum, #BuildMatDisplay)
- end if
- if not Active then
- exit
- end if
- if gClickSprite = mySprite then
- doButtonUpClick(myType)
- if myAction = #next then
- result = sendSprite(myTargetSprite, #doNextDisplay)
- else
- result = sendSprite(myTargetSprite, #doPreviousDisplay)
- end if
- curBuildMatStatus = sendSprite(myTargetSprite, #getCurDisplayStatus)
- sendAllSprites(#updateBuildMatArrowStates, curBuildMatStatus)
- end if
- end
-
- on updateBuildMatArrowStates me, curBuildMatStatus
- outPut("Sprite " && mySprite && "got <updateBuildMatArrowStates>")
- outPut("curBuildMatStatus =" && curBuildMatStatus)
- case curBuildMatStatus of
- #First:
- if myAction = #prev then
- goGrey(me)
- else
- goActive(me)
- end if
- #last:
- if myAction = #next then
- goGrey(me)
- else
- goActive(me)
- end if
- #mid:
- if grey then
- goActive(me)
- end if
- end case
- end
-
- on goGrey me
- global gCursorMan
- Active = 0
- grey = 1
- set the member of sprite mySprite to member(myNameInactive)
- if rollover() = mySprite then
- setCursor(gCursorMan, #Arrow, myType)
- end if
- end
-
- on goActive me
- Active = 1
- grey = 0
- set the member of sprite mySprite to member(myName)
- end
-
- on clearActorList me
- refreshBuildMatArrowStates(me)
- end
-
- on refreshBuildMatArrowStates me
- if voidp(myTargetSprite) then
- myTargetSprite = sendAllSprites(#sendSpriteNum, #BuildMatDisplay)
- end if
- curDisplayStatus = sendSprite(myTargetSprite, #getCurDisplayStatus)
- sendAllSprites(#updateBuildMatArrowStates, curDisplayStatus)
- end
-
- on endSprite me
- global gActorListMan
- unRegisterSprite(gActorListMan, mySprite)
- end
-